package com.study.common.swagger.config.property;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author Ming
 * @description Swagger参数
 * @fileSimpleName SwaggerProperty
 * @fileName com.happy.config.property.SwaggerProperty
 * @date 2022年03月10日 17:08
 */
@Data
@Component
@ConfigurationProperties(prefix = "swagger.config")
public class SwaggerProperty {

    /**
     * api扫描类型 - 注解方式 仅扫描添加了@ApiOperation注解的API
     */
    private String API_SCAN_TYPE_ANNOTATION = "annotation";

    /**
     * api扫描类型 - 扫描所有API
     */
    private String API_SCAN_TYPE_ANY = "any";

    /**
     * 是否启动
     */
    private Boolean enabled;

    /**
     * 摘要信息-标题
     */
    private String infoTitle;

    /**
     * 摘要信息-描述
     */
    private String infoDescription;

    /**
     * 摘要信息-版本号
     */
    private String infoVersion;

    /**
     * 作者信息-名称
     */
    private String infoContactName;

    /**
     * 作者信息-主页
     */
    private String infoContactUrl;

    /**
     * 作者信息-Email
     */
    private String infoContactEmail;

    /**
     * 是否使用安全机制
     */
    private Boolean enabledApiKey;

    /**
     * 扫描类型
     */
    private String apiScanType;

    /**
     * 分组名称
     */
    private String groupName;

    /**
     * 是否扫描注解API
     *
     * @return
     */
    public boolean isScanAnnotation() {
        return API_SCAN_TYPE_ANNOTATION.equals(apiScanType);
    }
}
